Aller au contenu

Generalized Markup Language

Un article de Wikipédia, l'encyclopédie libre.

Le langage Generalized Markup Language, appelé également GML, est la première version de langage de balisage proposé par IBM. Ce langage permettra à IBM de construire un système de gestion de toute sa documentation. 90 % des documents techniques sont écrits en GML. Ce langage est l’ancêtre du SGML et du HTML. Le HTML reprend d’ailleurs une grande partie de son concept.

Histoire du GML

[modifier | modifier le code]

La première généralisation des balises dans le langage GenCode 1967 : Recherche fondamentale du GCA

[modifier | modifier le code]

En 1967, William Tunnicliffe présente pour la première fois une approche pour séparer le fond du document par rapport à sa forme. C’est le début du GCA GenCode Committee qui élaborera les bases du premier langage de balisage généralisé[1].

L’ancêtre du SGML : le GML 1969 : Recherche fondamentale d’IBM

[modifier | modifier le code]

En 1969, Charles Goldfarb est responsable d'un projet de recherche d'un système d'information intégré pour la documentation d'IBM[2]. Il s’appuiera sur les travaux de William Tunnicliffe. Avec Edward Mosher et Raymond Lorie ils inventent le GML, un acronyme de leurs noms (Goldfarb, Mosher et Lorie) )[3].

Ce premier langage de balisage est l'ancêtre du SGML. L'objectif initial poursuivi par Charles F. Goldfarb, avant d'être sollicité par IBM, était de faciliter la tâche des juristes, en élaborant un système de gestion intégré du droit (Charles F. Goldfarb est juriste de formation). Les juristes rencontraient des difficultés dans la recherche des textes de loi et de la jurisprudence associée[4].

C'est finalement au sein d'IBM que Charles F. Goldfarb, avec ses deux collègues, Edward Mosher et Raymond Lorie, en développe une version commerciale, dédiée à la documentation, qui sera l'objet d'une offre logiciel sur le document appelé «Document Composition Facility». Cette offre contiendra le profile Starter Set du GML des trois inventeurs. Ce concept donnera quelques suites commerciales à ses produits; on trouvera notamment IPDT (Integrated Processing of Data and Text) distribué gracieusement dans l’offre (program offering), puis ASF (Application Support Facility) pour les aspects transactionnels (gestion de courrier, note, formulaire), qui sera tarifé et utilisé principalement par les compagnies d’assurances et les banques pour personnaliser leur communication client.

La première version en 1978, commercialisée par IBM en 1980

[modifier | modifier le code]

Dans sa première version, publiée en 1978 et commercialisée en 1980, le GML appelé Generalized Markup Language[5] (le parser est le profile SCRIPT/VS DSMPROF qui fait également office de DTD) contient déjà les principales balises que l'on retrouvera plus tard dans le HTML. Avec des balises de fin pour les balises structurantes et des balises de références pour les index et tables de matières ou table de figures. Les balises hiérarchiquement plus élevées dans une balise structurante de niveau inférieur fermaient automatiquement la balise précédemment ouverte. Par la suite un certain nombre de DTD basées sur le premier GML ont été proposés par IBM pour faciliter la conception :

DSMPROF3 (Starter Set Profile V3.2)
DTD du Generalized Markup Language contenant la description des balises ainsi que le parser permettant de valider à priori le document.
DSMPROF4 (Starter Set Profile V4.0)
Dernière version de 1991 de la DTD DSMPROF
DSMGM4 (Macro Library)
Dernière version de 1991 de la DTD contenant toutes les macros des balises
DSMBPROF (Bar Code Profile)
DTD pour l'écriture de code à barres.
DSMMPROF (Memo Profile)
DTD Permet la rédaction de note ou mémo.
DSMTPROF (Transparency Profile)
DTD pour la réalisation de transparent. La mise en forme adopte des polices de caractères avec des corps plus importants.
DSMSPROF (Schedule Profile)
DTD réalisée pour réaliser des diagrammes de suivi de projet avec les jalons, tâches, réalisé, prévu, …

Ces DTD appelées profile par IBM contiennent la référence de chaque balise et l'identifiant de la macro associée. Chaque balise dispose d'une macro dédiée qui permet la validation (parser), puis la mise en forme (DTD).

Les balises du GML

[modifier | modifier le code]
Les balises du GML
:ABSTRACT.
:ADDRESS. 
 :ALINE.
:EADDRESS.
:APPENDIX.
:BACKM.
:BODY.
:CIT.
:DL.
 :DTHD.
 :DDHD.
 :LP.
:EDL.
:FIG.
 :FIGCAP.
 :FIGDESC.
:EFIG.
:FIGLIST.
:FIGREF.
:FN.
:FNREF.
:FRONTM.
:GDOC.
:GL.
 :GT.
 :GD.
 :LP.
:EGL.
:h0.
 :h1.
  :h2.
   :h3.
    :h4.
     :h5.
      :h6.
:HDREF.
:HP0.
 :HP1.
  :HP2.
   :HP3.
   :EHP3.
  :EHP2.
 :EHP1.
:EHP0.
:I1.
 :I2.
  :I3.
:IH1.
 :IH2.
  IH3.
:INDEX.
:IREF.
:LIREF.
:SL. :OL. :UL.
 :LI.
:ESL. :EOL. /EUL.
:LQ.
:NOTE.
:P. :PC.
:PREFACE.
:PSC.
:Q.
:RDEF.
:TABLE.
 :ROW.
  :C.
 :TFT.
 :THD.
 :TCAP.
 :TDESC.
:ETABLE.
:TLIST.
:TNOTE.* :TREF.
:TITLEP.
 :TITLE.
 :DOCNUM.
 :DATE.
 :AUTHOR.
:ETITLEP.
:TOC.
:XMP.

On retrouve une grande partie des balises qui feront par la suite le HTML.

Structure d’un document en GML

[modifier | modifier le code]

La structure du document est proposée. Il s'agit du principal apport de ce concept « la structuration du document ». Il aboutira d'ailleurs plus tard au concept d'architecture objet pour les documents avec l'AFP (Advanced Function Presentation).

general document (:GDOC) le début du document
   front matter (:FRONTM) la page de garde
      title page (:TITLEP) le paragraphe de titre
         document title (:TITLE) le titre
         document number (:DOCNUM) la référence du document
         document date (:DATE) la date
         author name (:AUTHOR) l'auteur
         address of author or publisher (:ADDRESS) l'adresse
            address line (:ALINE)
 les lignes d'adresses
      abstract (:ABSTRACT)
         basic document elements
      preface (:PREFACE) la préface
         basic document elements
         lower-level heading segments (:H2 to :H6)
            basic document elements
      table of contents (:TOC) la table des matières (générée automatiquement)
      list of illustrations (:FIGLIST) la table des figures (générée automatiquement)
      list of tables (:TLIST) La table des tableaux (générée automatiquement)
   body (:BODY) le corps du document
      part (:H0) les parties du document (structure de niveau 0)
         basic document elements
         chapter (:H1) les chapitres du document (structure de niveau 1)
            basic document elements
            lower-level heading segments (:H2 to :H6)
               basic document elements
   appendix section (:APPENDIX)
 les appendices du document
      first-level heading segment (:H1) structure de niveau 1 de l'appendice
         basic document elements
         lower-level heading segments (:H2 to :H6)
            basic document elements
   back matter (:BACKM) page de fin
      first-level heading segment (:H1)
         basic document elements
         lower-level heading segments (:H2 to :H6)
            basic document elements
      index (:INDEX) l'index du document (généré automatiquement)

Un exemple de document en GML

[modifier | modifier le code]
:TABLE.
    :ROW.Champ un.
    :ROW.Champ deux. 
    :ROW.Champ trois. 
:ETABLE.

Un exemple de document en HTML

[modifier | modifier le code]
 <table>
     <tr>
         <td>Champ un.</td>
     </tr>
     <tr>
         <td>Champ deux.</td>
     </tr>
     <tr>
         <td>Champ trois.</td>
     </tr>
 </table>

Les versions et évolutions du GML

[modifier | modifier le code]

La première version GML livrée par IBM au sein de son offre DCF se nommait « Document Composition Facility Generalized Markup Language: Starter Set Reference ». Ce document dans sa première version est daté d' (Order number SH20-9187-0) et pour sa septième et dernière version de 1991 (SH20-9187-6)[5].

Le GML donnera naissance en 1974 au SGML à la suite des travaux de Charles Goldfarb. Il sera le principal acteur de la publication de la norme SGML ISO 8879 en 1986. En 1998 c’est le XML qui découlera également de ce premier concept[6].

Références

[modifier | modifier le code]
  1. « Le langage normalisé de balisage généralisé (SGML) »(Archive.orgWikiwixArchive.isGoogleQue faire ?), sur bibl.ulaval.ca.
  2. (en) « SGML Users' Group History », xml.coverpages.org.
  3. (en) Charles F. Goldfarb, « The Roots of SGML -- A Personal Recollection », (consulté le ).
  4. (en) « A Conversation with Charles F. Goldfarb »(Archive.orgWikiwixArchive.isGoogleQue faire ?) (entretien avec le rédacteur en chef de Web Techniques Magazine Michael Floyd).
  5. a et b (en) IBM, « Generalized Markup Language: Starter Set Reference, 1991. Order number SH20-9187-6 », .
  6. (en) Didier Courtaud, « From GenCode to XML : an history of markup languages »(Archive.orgWikiwixArchive.isGoogleQue faire ?), .